home *** CD-ROM | disk | FTP | other *** search
- #!/usr/sbin/perl
- #Tag 0x907F
-
- $ENV{'DISPLAY'} = "localhost:0.0";
- $ENV{'HOME'} = "/tmp";
-
- $results = `/usr/bin/ps -e | /usr/bin/grep bzfs`;
-
- if ($results) {
- `/usr/demos/General_Demos/bzflag/bzflag>/dev/null&`;
- } else {
- &alert;
- sleep 1;
- `/usr/demos/General_Demos/bzflag/bzflag>/dev/null&`;
-
- }
- sub alert {
- unless ($pid = fork) {
- unless (fork) {
- sleep 1 until getppid == 1;
- $SYSVoffset = 1000; # SGI/SYSV specific
- $SYS_close = 6+$SYSVoffset;
-
- # Try to shutdown all file-descriptors
- for ($i = 0; $i < 20; $i++) {
- syscall($SYS_close, $i);
- }
- open(CMD, "/usr/demos/General_Demos/bzflag/bzfs>/dev/null&|");
- close(CMD);
- open(CMD, "/usr/bin/X11/xconfirm -header \"Bzflag\" -B \"Stop Server\" -t \"The bzflag network server is running.\" -t \"Click stop to terminate.\" -icon info|");
- read(CMD, $out, 100);
- close(CMD);
- `/sbin/killall bzfs`;
- exit 0;
- }
- exit 0;
- }
- }
-